<!DOCTYPE html>
<html>
<head><meta name="generator" content="Hexo 3.8.0">
  <meta charset="utf-8">
  
  <title>JAVA</title>
  <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  
  
  
  
  <meta property="og:type" content="website">
<meta property="og:title" content="JAVA">
<meta property="og:url" content="https://jameslin23.gitee.io/page/5/index.html">
<meta property="og:site_name" content="JAVA">
<meta property="og:locale" content="zh-CN">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="JAVA">
  
    <link rel="alternate" href="/atom.xml" title="JAVA" type="application/atom+xml">
  

  

  <link rel="icon" href="/css/images/mylogo.jpg">
  <link rel="apple-touch-icon" href="/css/images/mylogo.jpg">
  
    <link href="//fonts.googleapis.com/css?family=Source+Code+Pro" rel="stylesheet" type="text/css">
  
  <link href="https://fonts.googleapis.com/css?family=Open+Sans|Montserrat:700" rel="stylesheet" type="text/css">
  <link href="https://fonts.googleapis.com/css?family=Roboto:400,300,300italic,400italic" rel="stylesheet" type="text/css">
  <link href="//netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
  <style type="text/css">
    @font-face{font-family:futura-pt; src:url("/css/fonts/FuturaPTBold.otf") format("woff");font-weight:500;font-style:normal;}
    @font-face{font-family:futura-pt-light; src:url("/css/fonts/FuturaPTBook.otf") format("woff");font-weight:lighter;font-style:normal;}
    @font-face{font-family:futura-pt-italic; src:url("/css/fonts/FuturaPTBookOblique.otf") format("woff");font-weight:400;font-style:italic;}
}

  </style>
  <link rel="stylesheet" href="/css/style.css">

  <script src="/js/jquery-3.1.1.min.js"></script>
  <script src="/js/bootstrap.js"></script>

  <!-- Bootstrap core CSS -->
  <link rel="stylesheet" href="/css/bootstrap.css">

  
    <link rel="stylesheet" href="/css/home.css">
  

  

  

  
  
  
    <link rel="stylesheet" href="/css/vdonate.css">
  

</head>
</html>


  <body>


  
    <header id="header">

	<!-- 背景图模式 -->
	

    
      <div id="intrologo" class="intro-logo" style="background-position:center; background-repeat:no-repeat; background-image: url(); background-size: auto 100%;">

      <!-- Support rolling -->  
        
        <section class="awSlider">
          <div class="carousel slide carousel-fade " data-ride="carousel">

            <!-- Wrapper for slides -->
            <div class="carousel-inner">
               
                  
                    <div class="item active">
                  
                    <img id="carousel-img0" src="/css/images/pose.jpg">
                  </div>

                  <!-- 自适应大图 -->
                  <script>
                      var img0 = new Image();
                      var imageTag0 = document.getElementById("carousel-img0");
                      img0.src = imageTag0.src;
                      img0.onload=function(){
                        if (img0.width / img0.height <= document.body.clientWidth / document.body.clientHeight) {
                          imageTag0.style.width = document.body.clientWidth + "px";
                        } else {
                          imageTag0.style.height = document.body.clientHeight + "px";
                          imageTag0.style.marginLeft = -(document.body.clientHeight * img0.width / img0.height - document.body.clientWidth) / 2 + "px";
                        }
                      };
                  </script>
                
            </div>

            <!-- Controls -->
            <a class="left carousel-control" href=".carousel" role="button" data-slide="prev">
              <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
              <span class="sr-only">Geri</span>
            </a>
            <a class="right carousel-control" href=".carousel" role="button" data-slide="next">
              <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
              <span class="sr-only">İleri</span>
            </a>
          </div>
        </section>
        <script>
          $('section.awSlider .carousel').carousel({
              pause: '',
              interval: 5000
          });
          var startImage = $('section.awSlider .item.active > img').attr('src');
          $('section.awSlider .carousel').on('slid.bs.carousel', function () {
              var bscn = $(this).find('.item.active > img').attr('src');
              $('section.awSlider > img').attr('src', bscn);
          });
        </script>
      

    
 


    <canvas width="100%" height="100%"></canvas>
    <script>
      var c = document.getElementsByTagName('canvas')[0],
          x = c.getContext('2d'),
          w = window.innerWidth,
          h = window.innerHeight,
          pr = window.devicePixelRatio || 1,
          f = 90,
          q,
          m = Math,
          r = 0,
          u = m.PI*2,
          v = m.cos,
          z = m.random
      c.width = w*pr
      c.height = h*pr
      x.scale(pr, pr)
      x.globalAlpha = 0.6

      <!-- 折线Polyline背景 -->
      
    </script>
    

    
      <div id="homelogo" class="homelogo" style="background: rgba(255,255,255,1);"> 
    

        
          <div class="homelogoback" style="border: 1px solid #404040;">
            <h1><a href="#content" id="logo">JAVA</a></h1>
            <h3></h3>
            <h5>LeBron Tao</h5>
            <!-- <p><a href="https://github.com/iTimeTraveler" target="_blank">Github</a></p> -->
          </div>
        
    
    </div>
  </div>

  <!-- 自适应主页背景大图 -->
  

 <!-- home_logo_image居中 -->
 
    <script>
        var homelogodiv = document.getElementById("homelogo");
        if (document.all.homelogo.offsetWidth > document.body.clientWidth) {
          homelogodiv.style.width = document.body.clientWidth + "px";
          homelogodiv.style.marginLeft = document.body.clientWidth * -0.5 + "px";
        } else {
          homelogodiv.style.width = homelogodiv.clientWidth  + "px";
          homelogodiv.style.marginLeft = (homelogodiv.clientWidth)  * -0.5 + "px";
        }
    </script>
  

  <div class="intro-navigate">
      <p class="navigater-list">
        
          <a id="beautifont" class="main-nav-link" href="/">首页</a>
        
          <a id="beautifont" class="main-nav-link" href="/archives">归档</a>
        
          <a id="beautifont" class="main-nav-link" href="/categories">分类</a>
        
          <a id="beautifont" class="main-nav-link" href="/tags">标签</a>
        
          <a id="beautifont" class="main-nav-link" href="/about">关于</a>
        
      </p>
  </div>

</header>
  
  <div id="container">
    <div id="wrap">
      
            
      <div id="content" class="outer">
        
          <section id="main" style="float:none;">
  
    <article id="post-Memcache" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/09/Memcache/">Memcache</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/09/Memcache/" class="article-date">
	  <time datetime="2020-12-09T12:50:10.000Z" itemprop="datePublished">2020-12-09</time>
	</a>

      
    <a class="article-category-link" href="/categories/Nosql/">Nosql</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          memchache特点
MC处理请求时使用多线程异步IO方法，可以合理利用CPU多核的优势，性能非常优秀。
MC功能简单，使用内存存储数据
MC 对缓存的数据可以设置失效期，过期后的数据会被清除；
失效的策略采用延迟失效，就是当再次使用数据时检查是否失效；
当容量存满时，会对缓存中的数据进行剔除，剔除时除了会对过期 key 进行清理，还会按 LRU 策略对数据进行剔除。

缺陷
key不能超过250个字节
value不能超过1M字节
key的最大失效时间是30天
只支持K-V结构，不能供持...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/09/Memcache/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-redis面试专题" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/09/redis面试专题/">redis面试专题</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/09/redis面试专题/" class="article-date">
	  <time datetime="2020-12-09T00:55:02.000Z" itemprop="datePublished">2020-12-09</time>
	</a>

      
    <a class="article-category-link" href="/categories/Nosql/">Nosql</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          一、redis用了哪些数据结构？适用哪些场景二、redis是单线程，为什么不使用多线程？三、redis持久化机制？四、redis哨兵模式如何实现故障转移？五、穿透，击穿，雪崩如何解决六、谈一谈redis分布式锁?七、你了解最经典的KV、DB读写模式么？八、为什么是删除缓存，而不是更新缓存？九、Redis 和 Memcached 有啥区别，为啥选择用Redis作为你们的缓存中间件？十、假如Redis里面有1亿个key，其中有10w个key是以某个固定的已知的前缀开头的，如何将它们全部找出来？...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/09/redis面试专题/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-redis分布式锁" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/07/redis分布式锁/">redis分布式锁</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/07/redis分布式锁/" class="article-date">
	  <time datetime="2020-12-07T12:01:38.000Z" itemprop="datePublished">2020-12-07</time>
	</a>

      
    <a class="article-category-link" href="/categories/Nosql/">Nosql</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          分布式锁什么是分布式锁?分布式锁就是控制分布式系统或不同系统之间共同访问共享资源的一种锁实现,如果不同的系统或同一个系统的不同主机之间共享了某个资源时，往往需要互斥来防止彼此干扰来保证一致性。
分布式锁需要具备哪些条件
互斥性:在任意一个时刻,只有一个客户端持有锁
无死锁:即便持有锁的客户端崩溃或者其他意外事件,锁仍然可以被获取。
容错:只要大部分redis节点都活着,客户端就可以获取锁和释放锁

分布式锁实现有哪些？
数据库
Memcached（add命令）
Redis（setnx命令）...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/07/redis分布式锁/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-redis缓存故障" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/07/redis缓存故障/">redis缓存故障</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/07/redis缓存故障/" class="article-date">
	  <time datetime="2020-12-07T06:25:23.000Z" itemprop="datePublished">2020-12-07</time>
	</a>

      
    <a class="article-category-link" href="/categories/Nosql/">Nosql</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          缓存穿透缓存穿透的概念,用户想查询一个数据，发现Redis没有，也就是缓存没有命中，于是向持久层数据库查询。发现也没有，于是本次查询失败。当用户很多时候，缓存都没有命中，于是都去请求了持久层数据库。这个给持久层数据库造成很多的压力。

 解决方法:
1、缓存空对象
当存储层不命中时,即使返回空对象也将其缓存起来,设置一个过期时间，之后再访问这个数据将会从缓存中获取，保护了后端数据源

但是这种方法会存在两个问题：

1、缓存区可能存在大量空值的键
2、可能会存在缓存层和存储层会有一段时间空...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/07/redis缓存故障/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-redis哨兵模式" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/05/redis哨兵模式/">redis哨兵模式</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/05/redis哨兵模式/" class="article-date">
	  <time datetime="2020-12-05T06:55:30.000Z" itemprop="datePublished">2020-12-05</time>
	</a>

      
    <a class="article-category-link" href="/categories/Nosql/">Nosql</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          哨兵模式Sentinel(哨兵)是redis的高可用性解决方案:由一个或者多个Sentinel实例组成的Sentinel系统可以监视任意多个主服务器以及这些主服务器属下所有从服务器，并在被监视的主服务器进入下线状态时,自动将下线主服务器属下的某个从服务器升级为新的服务器，然后由新的主服务器代替已下线的主服务器继续处理请求命令,他主要功能如下:

监控(Monitoring)：Sentinel会不断地检查你的主服务器和从服务器是否运作正常。
通知(Notification)：当被监控的某个 ...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/05/redis哨兵模式/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-redis主从复制" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/05/redis主从复制/">redis主从复制</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/05/redis主从复制/" class="article-date">
	  <time datetime="2020-12-05T02:24:07.000Z" itemprop="datePublished">2020-12-05</time>
	</a>

      
    <a class="article-category-link" href="/categories/Nosql/">Nosql</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          概念主从复制,是指将一台Redis服务器的数据,复制到其它的Redis服务器。前称为主节点(master),后者称为从节点(slave);数据的复制是当向的。只能由主节点到从节点。Master负责写，Slave以读为主。
主从复制的作用主要包括:

数据冗余: 主从复制实现了数据的热备份，是持久化之外的一种数据冗余方法
故障恢复: 当节点出现问题时,可以由从节点提供服务器,实现快速故障恢复
负载均衡: 在主从复制的基础上,配合读写分离,可以由节点提供些服务,由从节点提供读服务(即写redi...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/05/redis主从复制/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-RocketMQ分布式事务" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/04/RocketMQ分布式事务/">RocketMQ分布式事务</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/04/RocketMQ分布式事务/" class="article-date">
	  <time datetime="2020-12-04T11:37:59.000Z" itemprop="datePublished">2020-12-04</time>
	</a>

      
    <a class="article-category-link" href="/categories/消息队列/">消息队列</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          RocketMQ事务机制举个分布式事务场景例子: 假设A给B转100块，同时他们不是在同一个服务器上
目标: 就是 A 减100块钱，B 加100块钱。
实际可能情况

1）就是A账户减100 （成功），B账户加100 （成功）
2）就是A账户减100（失败），B账户加100 （失败） 
3）就是A账户减100（成功），B账户加100 （失败） 
4）就是A账户减100 （失败），B账户加100 （成功）

这里 第1和第2 种情况是能够保证事务的一致性的，但是 第3和第4 是无法保证事务...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/04/RocketMQ分布式事务/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-RocketMQ拉取策略" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/04/RocketMQ拉取策略/">RocketMQ拉取策略</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/04/RocketMQ拉取策略/" class="article-date">
	  <time datetime="2020-12-04T11:28:57.000Z" itemprop="datePublished">2020-12-04</time>
	</a>

      
    <a class="article-category-link" href="/categories/消息队列/">消息队列</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          消费者拉取策略（Master-Slave）ConsumeQueue文件也是基于os cache的
ConsumeQueue会被大量的消费者发送的请求高并发读取，所以ComsumeQueue文件读取操作非常频繁，而且同时会极大影响到消费者进行拉取的性能和消费吞吐量
对于Broker机器的磁盘上的大量的comsumeQueue文件，在写入的时候也都是优先进os cache中，ConsumeQueue文件主要存放消息CommitLog消息offest,所以每个文件很小,30万条消息的offset...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/04/RocketMQ拉取策略/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-RocketMQ集群模式" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/04/RocketMQ集群模式/">RocketMQ集群模式</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/04/RocketMQ集群模式/" class="article-date">
	  <time datetime="2020-12-04T10:52:53.000Z" itemprop="datePublished">2020-12-04</time>
	</a>

      
    <a class="article-category-link" href="/categories/消息队列/">消息队列</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          Master-Slave主从模式
生产者发数据只会发到Master上，然后slave 从Master pull数据同步下来，跟master保存一份一模一样的数据。
消费者在系统获取消息时候会先发送请求到Master Broker上去,请求获取一批消息，此时Master Broker是会返回一批消息给消费者系统的。然后Master Broker在返回消息给消费者系统的时候，
会根据当时Master Broker的负载情况和Slave Broker的同步情况，向消费者系统建议下一次拉取消息的时...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/04/RocketMQ集群模式/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  
    <article id="post-RocketMQ单机模式" class="article article-type-post" itemscope itemprop="blogPost">
  <div id="articleInner" class="article-inner">
    
    
      <header class="article-header">
        
  
    <h1 class="thumb" itemprop="name">
      <a class="article-title" href="/2020/12/04/RocketMQ单机模式/">RocketMQ单机模式</a>
    </h1>
  

      </header>
    
    <div class="article-meta">
      
	<a href="/2020/12/04/RocketMQ单机模式/" class="article-date">
	  <time datetime="2020-12-04T10:20:49.000Z" itemprop="datePublished">2020-12-04</time>
	</a>

      
    <a class="article-category-link" href="/categories/消息队列/">消息队列</a>

      
      

    </div>
    <div class="article-entry" itemprop="articleBody">
      
        <p class="article-excerpt-content">
          按照步骤官网下载http://rocketmq.apache.org/
rocketmq-all-4.6.1-bin-release.zip
unzip rocketmq-all-4.6.1-bin-release.zip
修改配置文件在MQ目录下 conf/2m-noslave 创建新的配置文件
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#broker 集群...
        </p>
        <p class="article-more-link">
          <a href="/2020/12/04/RocketMQ单机模式/#more">阅读全文</a>
        </p>
      
    </div>
    <footer class="article-footer">
      
      
      
      

    </footer>
  </div>
  
</article>

<!-- Table of Contents -->


  


  <nav id="page-nav">
    
    <a class="extend prev" rel="prev" href="/page/4/">&laquo; 上一页</a><a class="page-number" href="/">1</a><span class="space">&hellip;</span><a class="page-number" href="/page/3/">3</a><a class="page-number" href="/page/4/">4</a><span class="page-number current">5</span><a class="page-number" href="/page/6/">6</a><a class="extend next" rel="next" href="/page/6/">下一页 &raquo;</a>
  </nav>

</section>
        
      </div>
      
        <div align="center" style="margin-top: 30px;"><hr class="hr" style="margin:0px; height:3px;"></div>
      
      <footer id="footer">
  

  <div class="container">
      	<div class="row">
	      <p> Powered by <a href="http://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/iTimeTraveler/hexo-theme-hiker" target="_blank">Hexo-theme-hiker</a> </p>
	      <p id="copyRightEn">Copyright &copy; 2013 - 2021 JAVA All Rights Reserved.</p>
	      
	      
    		<p class="busuanzi_uv">
				访客数 : <span id="busuanzi_value_site_uv"></span> |  
				访问量 : <span id="busuanzi_value_site_pv"></span>
		    </p>
  		   
		</div>

		
  </div>
</footer>


<!-- min height -->

<script>
    var wrapdiv = document.getElementById("wrap");
    var contentdiv = document.getElementById("content");
    var allheader = document.getElementById("allheader");

    wrapdiv.style.minHeight = document.body.offsetHeight + "px";
    if (allheader != null) {
      contentdiv.style.minHeight = document.body.offsetHeight - allheader.offsetHeight - document.getElementById("footer").offsetHeight + "px";
    } else {
      contentdiv.style.minHeight = document.body.offsetHeight - document.getElementById("footer").offsetHeight + "px";
    }
</script>
    </div>
    <!-- <nav id="mobile-nav">
  
    <a href="/" class="mobile-nav-link">Home</a>
  
    <a href="/archives" class="mobile-nav-link">Archives</a>
  
    <a href="/categories" class="mobile-nav-link">Categories</a>
  
    <a href="/tags" class="mobile-nav-link">Tags</a>
  
    <a href="/about" class="mobile-nav-link">About</a>
  
</nav> -->
    

<!-- mathjax config similar to math.stackexchange -->

<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    tex2jax: {
      inlineMath: [ ['$','$'], ["\\(","\\)"] ],
      processEscapes: true
    }
  });
</script>

<script type="text/x-mathjax-config">
    MathJax.Hub.Config({
      tex2jax: {
        skipTags: ['script', 'noscript', 'style', 'textarea', 'pre', 'code']
      }
    });
</script>

<script type="text/x-mathjax-config">
    MathJax.Hub.Queue(function() {
        var all = MathJax.Hub.getAllJax(), i;
        for(i=0; i < all.length; i += 1) {
            all[i].SourceElement().parentNode.className += ' has-jax';
        }
    });
</script>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>


  <link rel="stylesheet" href="/fancybox/jquery.fancybox.css">
  <script src="/fancybox/jquery.fancybox.pack.js"></script>


<script src="/js/scripts.js"></script>


  <script src="/js/home.js"></script>










	<div style="display: none;">
    <script src="https://s95.cnzz.com/z_stat.php?id=1260716016&web_id=1260716016" language="JavaScript"></script>
  </div>



	<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js">
	</script>






  </div>

  <div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
  <div class="modal-dialog">
    <div class="modal-content">
      <div class="modal-header">
        <h2 class="modal-title" id="myModalLabel">设置</h2>
      </div>
      <hr style="margin-top:0px; margin-bottom:0px; width:80%; border-top: 3px solid #000;">
      <hr style="margin-top:2px; margin-bottom:0px; width:80%; border-top: 1px solid #000;">


      <div class="modal-body">
          <div style="margin:6px;">
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseOne" onclick="javascript:setFontSize();" aria-expanded="true" aria-controls="collapseOne">
              正文字号大小
            </a>
          </div>
          <div id="collapseOne" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingOne">
          <div class="panel-body">
            您已调整页面字体大小
          </div>
        </div>
      


          <div style="margin:6px;">
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseTwo" onclick="javascript:setBackground();" aria-expanded="true" aria-controls="collapseTwo">
              夜间护眼模式
            </a>
        </div>
          <div id="collapseTwo" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingTwo">
          <div class="panel-body">
            夜间模式已经开启，再次单击按钮即可关闭 
          </div>
        </div>

        <div>
            <a data-toggle="collapse" data-parent="#accordion" href="#collapseThree" aria-expanded="true" aria-controls="collapseThree">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关 于&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</a>
        </div>
         <div id="collapseThree" class="panel-collapse collapse" role="tabpanel" aria-labelledby="headingThree">
          <div class="panel-body">
            JAVA
          </div>
          <div class="panel-body">
            Copyright © 2021 LeBron Tao All Rights Reserved.
          </div>
        </div>
      </div>


      <hr style="margin-top:0px; margin-bottom:0px; width:80%; border-top: 1px solid #000;">
      <hr style="margin-top:2px; margin-bottom:0px; width:80%; border-top: 3px solid #000;">
      <div class="modal-footer">
        <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
      </div>
    </div>
  </div>
</div>
  
  <a id="rocket" href="#top" class=""></a>
  <script type="text/javascript" src="/js/totop.js?v=1.0.0" async=""></script>
  
</body>
</html>